package Persistencia;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

import Negocio.Producto;

public class admPersProducto {

private static admPersProducto pool;
	
	
	private admPersProducto()
	{
		
	}
	public static admPersProducto getInstancia()
	{
		if (pool== null)
			pool =new admPersProducto();
		return pool;
	}	
	
	public void insert(Producto p){
		Connection con = poolConnection.getPoolConnection().getConnection();
		
		try{
			String sentence = "INSERT INTO TBL_PRODUCTOS (CODIGO, PRECIO, DESCRIPCION) VALUES (?,?,?)";
			PreparedStatement ps = null;
			ps = con.prepareStatement(sentence);
			ps.setInt(1, p.getCodigo());
			ps.setFloat(2, p.getPrecio());
			ps.setString(3, p.getDescripcion());
			ps.execute();
			poolConnection.getPoolConnection().realeaseConnection(con);
				
		}
		catch(SQLException e){
			System.out.println("Mensaje Error: "+ e.getMessage());
			System.out.println("Stack trace : " + e.getStackTrace());
			poolConnection.getPoolConnection().realeaseConnection(con);
		}
	}
	public Vector<Producto> getAllProductos (){
		Connection con = poolConnection.getPoolConnection().getConnection();
		Vector<Producto> prds = new Vector<Producto>();
		
		try{
			String sentence = "SELECT CODIGO, PRECIO, DESCRIPCION FROM TBL_PRODUCTOS";
			PreparedStatement ps = null;
			ps = con.prepareStatement(sentence);
			ResultSet resultado = ps.executeQuery();
			while(resultado.next()){
				Producto p = new Producto(resultado.getInt("CODIGO"), resultado.getFloat("PRECIO"),resultado.getString("DESCRIPCION"));
				prds.add(p);
				
			}
			return prds;
			
				
		}
		catch(SQLException e){
			System.out.println("Mensaje Error : "+ e.getMessage());
			System.out.println("Stack trace : " + e.getStackTrace());
			poolConnection.getPoolConnection().realeaseConnection(con);
		}
		return null;
	}
		
}
	

